/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Controles;

import modelos.Autor;
import modelos.Usuario;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.LinkedList;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

/**
 *
 * @author diegoarmandocontrerashernandez
 */
@WebServlet(name = "ControlAdminConsejo", urlPatterns = {"/ControlAdminConsejo"})
public class ControlAdminConsejo extends HttpServlet {

    HttpServletResponse thisResponse;
  HttpServletRequest thisRequest;
  PrintWriter out;
  Usuario usuario = new Usuario();
  Autor autor = new Autor();
    
    /**
     * Processes requests for both HTTP
     * <code>GET</code> and
     * <code>POST</code> methods.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
       ServletContext context;      
        String test=request.getParameter("metodo");
        if(test.equals("eliminar")){
            eliminar(request.getParameter("idEliminado"));
        }else if(test.equals("votar")){
            votar(request.getParameter("idUs"));
        }else{
        usuario.actualizarConsejo();
        String url="/jsp/adminConsejo.jsp";
        request.setAttribute("informacion", llenarTabla());
        request.setAttribute("informacion2", llenarCandidatos());
        RequestDispatcher dispatcher = getServletContext().getRequestDispatcher(url);
        dispatcher.forward(request, response);
        }
    }
    
    public void eliminar(String id){
        usuario.eliminar(id);
        autor.limpiarVotos(id);
    }
    
    public void votar(String id){
        autor.votar(id);
    }
    
    public String llenarTabla(){
        
        LinkedList consejo;
        String username, nombre, parametros, id;
        int i = 0, tamanio = 0, j = 0;
        String respuesta = new String();
        
        //control = new ControlAdminUsuario();
        consejo= usuario.getConsejo();
        tamanio = consejo.size();
        
        while (i < tamanio){
            if(j == 0){
               respuesta +=("<tr>"); 
               respuesta +=("<td>");
               respuesta +=("<p>");
               respuesta +=(consejo.get(i).toString());
               respuesta +=("</p>");
               respuesta +=("</td>");
            }else if (j == 1){
                respuesta +=("<td>");
                respuesta +=("<p>");
                respuesta +=(consejo.get(i).toString());
                nombre = consejo.get(i - 1).toString();
                username = consejo.get(i).toString();
                id = consejo.get(i + 1).toString();
                respuesta +=("</p>");
                respuesta +=("</td>");
                respuesta +=("<td>");
                parametros = "'"+nombre+"'"+", '"+id+"'";
                respuesta +=("<img border=0 onClick =\"appearStuff("+parametros+")\" src=\"tacha.gif\" id = \"lapiz\" style=\"max-width: 30px; max-height: 30px\">");
                respuesta +=("</td>");
                respuesta +=("<td>");   
                respuesta +=("</td>");
                respuesta +=("</tr>");
            }
            if(j == 2)
                j = 0;
            else
                j++;
            i++; 
        }
        
        return respuesta;
    }
    
    public String llenarCandidatos(){
        
        LinkedList candidatos;
        String username, nombre, parametros, id = "";
        int i = 0, tamanio = 0, j = 0;
        String respuesta = new String();
        parametros = "";
        //control = new ControlAdminUsuario();
        candidatos= autor.getCandidatos();
        tamanio = candidatos.size();
        
        while (i < tamanio){
            if(j == 0){
               respuesta +=("<tr>"); 
               respuesta +=("<td>");
               respuesta +=("<p>");
               respuesta +=(candidatos.get(i).toString());
               respuesta +=("</p>");
               respuesta +=("</td>");
            }else if (j == 1){
            respuesta +=("<td>");
               respuesta +=("<p>");
               respuesta +=(candidatos.get(i).toString());
               respuesta +=("</p>");
                
               respuesta +=("</td>");
            }else if (j == 2){
                respuesta +=("<td>");
                respuesta +=("<p>");
                respuesta +=(candidatos.get(i).toString());
                //id = candidatos.get(i).toString();
                respuesta +=("</p>");
                respuesta +=("</td>");

            }else if (j == 3){
                
                id = candidatos.get(i).toString();
                respuesta +=("<td>");
                respuesta +=("<input type =\"button\" value = \"votar\"  onClick =\"votar("+id+")\">");
                respuesta +=("</td>");
                respuesta +=("</tr>");
            }
            
            if(j == 3)
                j = 0;
            else
                j++;
            
            i++; 
        }
        
        return respuesta;
    }

    // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
    /**
     * Handles the HTTP
     * <code>GET</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP
     * <code>POST</code> method.
     *
     * @param request servlet request
     * @param response servlet response
     * @throws ServletException if a servlet-specific error occurs
     * @throws IOException if an I/O error occurs
     */
    @Override
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     *
     * @return a String containing servlet description
     */
    @Override
    public String getServletInfo() {
        return "Short description";
    }// </editor-fold>
}
